package com.changhong.framework.sdfs.namenode.server.datanode;

/**
 * 数据节点管理接口
 * @author summer
 */
public interface DataNodeLeaseManager<T> {

    /**
     * 注册数据节点接口
     * @param dataNode 数据对象
     */
    void register(T dataNode);

    /**
     * 下线数据节点
     * @param appName
     * @param id
     * @return
     */
    boolean cancel(String appName, String id);

    /**
     * 心跳续约
     * @param appName
     * @param id
     * @return
     */
    boolean renew(String appName, String id);

    /**
     * 剔除失效的数据节点
     */
    void evict();
}
